﻿using System;
using System.Windows;
using System.Windows.Input;
using System.ComponentModel;

namespace MouseExtender.Logic.Common
{
    public class MouseHookEventArgs : EventArgs
    {
        public MouseButton Button
        {
            get;
            private set;
        }

        public Point CursorPosition
        {
            get;
            private set;
        }

        public int ClickCount
        {
            get;
            private set;
        }

        public short MouseDelta
        {
            get;
            private set;
        }

        public string ActiveProcess
        {
            get;
            private set;
        }

        public MouseHookEventArgs(MouseButton button, double x, double y, string activeProcess) :
            this(button, x, y, 1, 0, activeProcess)
        {
        }

        public MouseHookEventArgs(MouseButton button, double x, double y, int clickCount, short mouseDelta, string activeProcess)
        {
            Button = button;
            CursorPosition = new Point(x, y);
            ClickCount = clickCount;
            MouseDelta = mouseDelta;
            ActiveProcess = activeProcess;
        }
    }

    public class PreviewMouseHookCancelArgs : CancelEventArgs
    {
        public string ProcessExecutableName { get; set; }
    }
}
